<template>
    <div>
        <navTitle title="人气推荐"></navTitle>
        <seartch :array="array" @searchValues="searchValues"></seartch>
        <dataList :datalisttitle="datalisttitle"></dataList>
        <!-- 推荐列表  此列表传递内容进入其中 和外界进行交互 多是利用父子传递参数 -->
        <comment v-model:state="commendListState" :total="total" v-model:pageNum="pageNum" v-model:pageSize="pageSize"
            @updateAX="AX" @DeleteLists="DeleteLists" @update="update" @updateSort="updateSort">
        </comment>
    </div>
</template>

<script lang="ts" setup>
    import navTitle from '@/components/_s_yingxiao/_s_NavTitle.vue'
    import seartch from '@/components/_s_yingxiao/_s_Serch.vue'
    import dataList from '@/components/_s_yingxiao/_s_DataList.vue'
    import comment from '@/components/_s_yingxiao/_s_BrandRecommend.vue'
import { flash } from '@/request/api'
import { ref } from 'vue'
    let array = [{
        title : '商品名称',
        havelist : false,
        placeholder : '商品名称'
    },{
        title : '推荐状态',
        placeholder : '全部',
        havelist : true,
        appNameList : [
            '未推荐',
            '推荐中',
        ]
    }]
    let datalisttitle = [  //传给数据列表的内容
        {
            val : '选择商品'
        }
    ]
    // 列表数据
// 推荐列表的列表数据
let pageSize = ref(5) //几条数据
let pageNum = ref(1) // 第几页
let total = ref(1)  // 全部几条数据
let commendListState = ref([])  //具体数据列表
let name =ref('') //搜索的名字
let type = ref(null) //类型
function DeleteLists(e: Array<number>) {
    //删除函数
    let z = e.toString()
    flash.deleteRecommendProductList(z).then(res => {
        AX()
    })
}
function AX() {
    flash.recommendProductList({
        brandName:name.value,
        pageNum: pageNum.value,
        pageSize: pageSize.value,
        recommendStatus : type.value
    }).then(res => {
        // 更新上面5条数据
        let newlist = []
        for(let i=0;i<res.list.length;i++){
            newlist.push({
                brandId : res.list[i].productId,
                brandName:res.list[i].productName,
                id : res.list[i].id,
                recommendStatus: res.list[i].recommendStatus,
                sort:res.list[i].sort
            })
        }
        pageSize.value = res.pageSize
        pageNum.value = res.pageNum
        commendListState.value = newlist
        total.value = res.total
    })
}
AX()

// 推荐状态修改函数
function update(e:number | Array<number> , i : 1|0|100) {
    flash.updaterecommendProductStatus({
        ids: e.toString(),
        recommendStatus: (-i+1)
    }).then(res => {
        AX()
    })
}

// 修改推荐状态
function updateSort (sort : number| string , id : number){
    // 接收回传参数 进行请求的发送 然后更新数据
    flash.recommendProductChangeSort({id , sort}).then((res)=> {
        // 发送请求成功
        AX()
    })
}
// 搜索
let searchValues = (e)=>{
    let newType = e[1] == '推荐中' ? 1 : (e[1] == '未推荐' ? 0 : null)
    name.value = e[0]
    type.value = newType
    AX()
    
}
</script>
 
<style lang="less" scoped>
    
</style>